Joseph Goguen 1976. A family of declarative "ultra high
level" languages. Abstract types, generic modules, subsorts
(subtypes with
multiple inheritance), pattern-matching
modulo equations, E-strategies (user control over laziness),
module expressions (for combining modules), theories and views
(for describing module interfaces). For the massively
parallel RRM (Rewrite Rule Machine).
[
"Higher-Order Functions Considered Unnecessary for
Higher-Order Programming", J.A. Goguen, in Research Topics in
Functional Programming].